package sanrenxing.dayEnd.backRepertoryTotal.service;
import sanrenxing.dayEnd.backRepertoryTotal.domain.CashAccount;
import sanrenxing.dayEnd.backRepertoryTotal.domain.TransactionSettlement;
import sanrenxing.dayEnd.backRepertoryTotal.domain.TransactionSettlementTwo;

import java.util.List;

/**
 * 功能:交易结算业务层接口类
 * 编写者：
 * 日期：2021
 * 版本：1.0
 */
public interface TrabsactionBiz {
    /**
     * 分页查询条件
     * @param rows
     * @param pages
     * @param condition
     * @return
     */
    public List<TransactionSettlementTwo> findByPages(int rows, int pages, String condition);

    /**
     * 按条件统计记录数
     * @param condition 统计条件
     * @return 条件
     */
    public int count(String condition);

    /**
     * 获取查询条件
     * @param transaction
     * @return 条件字符串
     */
    public String getCount(TransactionSettlement transaction);

    /**
     * 根据证券交易编号删除数据
     * @param tranId 证券交易编号
     * @return 1：删除成功；0：删除失败
     */
    public int delete(int tranId);

    /**
     * 修改交易数据
     * @param transactionSettlement 交易数据对象
     * @return 1：修改成功；0：修改失败
     */
    public int update(TransactionSettlement transactionSettlement);

    /**
     * 查询所有交易处理数据
     * @return 交易处理数据对象集合
     */
    public TransactionSettlement findById(int tranId);

    /**
     * 查询现金账户名称
     * @return
     */
    public List<CashAccount> queryCash();

    /**
     * 通过证券编号判断是否为债券
     * @return
     */
    public int ifIsBond(String seId);

    /**
     * 通过债券编号从证券库存中查询该债券数量
     * @param seId
     * @return
     */
    public int bondRepositoryCount(String seId);

    /**
     * 通过证券编号从证券应收应付取得数据条数
     * @param seId
     * @return
     */
    public int getBondCount(String seId);

    /**
     * 过证券编号从证券应收应付取得所有债券利息
     * @param seId
     * @return
     */
    public Double getBondEveryMoney(String seId);

    /**
     * 修改证券应收应付中对应该债券每天的利息：减去卖掉的债券利息
     * @param EveryDayMoney
     */
    public void updateBondEveryDayMoney(Double EveryDayMoney,String seId);

    /**
     * 在证券应收应付中删除金额为0并且类型为债券利息的数据
     */
    public void clearBond();
}
